package com.qimo.zuoyeoa.config;


import com.qimo.zuoyeoa.interceptor.LoginInerceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

// 这是一个配置类，用于创建一些系统所需要用到的对象
// 实现了WebMvcConfigurer接口后，就可以创建一些直接用于Servlet环境的对象
@Configuration
public class AppConfig implements WebMvcConfigurer {

    // 在web环境中加入一些拦截器
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 将已定义好的登录拦截器注册到系统中，并返回一个InterceptroRegistration对象
        // 可以使用这个InterceptorRegistration对象，对拦截器的信息做进一步的配置
        final InterceptorRegistration registration = registry.addInterceptor(new LoginInerceptor());

        // 注册需要拦截的URL模式：当前是拦截根目录下所有URL请求
        registration.addPathPatterns("/**");
        // 注册不需要排除拦截的URL模式： 1. 登录请求不能拦截，否则死循环； 2. 静态资源请求不能拦截。
        registration.excludePathPatterns("/login", "/assets/**");
    }

}
